
const { app } = require("electron");
const path = require("path");
const fs = require("fs");
const { exec } = require('child_process');

// 检查并创建桌面快捷方式
function checkAndCreateShortcut() {
  // 仅在生产环境执行（可选）
  if (!app.isPackaged) {
    console.log('开发环境，跳过快捷方式创建');
    return;
  }

  try {
    const desktopPath = app.getPath('desktop');
    const appName = app.getName();
    let shortcutPath;

    // 根据操作系统确定快捷方式路径和格式
    switch (process.platform) {
      case 'win32':
        // Windows 系统 - .lnk 快捷方式
        shortcutPath = path.join(desktopPath, `${appName}.lnk`);
        if (!fs.existsSync(shortcutPath)) {
          createWindowsShortcut(shortcutPath);
        }
        break;
      
      default:
        console.log(`不支持的操作系统: ${process.platform}`);
    }
  } catch (error) {
    console.error('处理快捷方式时出错:', error);
  }
}

// 创建Windows快捷方式 (.lnk)
function createWindowsShortcut(shortcutPath) {
  const exePath = app.getPath('exe');
  const workingDir = path.dirname(exePath);
  
  // 使用单引号包裹路径，避免双引号嵌套问题
  const powershellCmd = `
    $WshShell = New-Object -ComObject WScript.Shell;
    $shortcut = $WshShell.CreateShortcut('${shortcutPath}');
    $shortcut.TargetPath = '${exePath}';
    $shortcut.WorkingDirectory = '${workingDir}';
    $shortcut.Save();
  `;

  exec(`powershell -Command "${powershellCmd.replace(/\n/g, ' ').trim()}"`, (err) => {
    if (err) {
      console.error('创建Windows快捷方式失败:', err);
    } else {
      console.log(`Windows快捷方式已创建: ${shortcutPath}`);
    }
  });
}

module.exports = {
  checkAndCreateShortcut
}